package com.york.subject.domain.handler.subject;

import com.york.subject.common.enums.SubjectInfoTypeEnum;
import com.york.subject.domain.entity.SubjectInfoBO;
import com.york.subject.domain.entity.SubjectOptionBO;

/**
 * 配合工厂模式，根据题目类型，调用不同题目类型的service处理接口
 * 即该接口用枚举作为身份的识别，不同类型对应枚举中的不同常量
 */
public interface SubjectTypeHandler {

    /**
     * 枚举身份的识别
     */
    SubjectInfoTypeEnum getHandlerType();

    /**
     * 实际的题目的插入
     */
    void add(SubjectInfoBO subjectInfoBO);

    /**
     * 查询题目信息
     */
    SubjectOptionBO query(Long subjectId);

}
